package main

import (
	"fmt"
	"strconv"
)

func main() {
	size := strconv.IntSize
	fmt.Println("操作系统，int 位数： ", size)

	// `strconv.Itoa(i int) string` 返回数字 i 所表示的字符串类型的十进制数。
	fmt.Printf("strconv.Itoa() : %s \n", strconv.Itoa(10))

	// `strconv.FormatFloat(f float64, fmt byte, prec int, bitSize int) string`
	// 将 64 位浮点型的数字转换为字符串，其中 `fmt` 表示格式
	//（其值可以是 `'b'`、`'e'`、`'f'` 或 `'g'`），
	//`prec` 表示精度，`bitSize` 则使用 32 表示 float32，用 64 表示 float64。
	f1 := strconv.FormatFloat(3.1415927, 'b', 2, 32)
	f2 := strconv.FormatFloat(3.1415927, 'e', 2, 32)
	f3 := strconv.FormatFloat(3.1415927, 'f', 2, 32)
	f4 := strconv.FormatFloat(3.1415927, 'g', 2, 32)
	fmt.Printf("FormatFloat() 'b' , %s \n", f1)
	fmt.Printf("FormatFloat() 'e' , %s \n", f2)
	fmt.Printf("FormatFloat() 'f' , %s \n", f3)
	fmt.Printf("FormatFloat() 'g' , %s \n", f4)

	//- `strconv.Atoi(s string) (i int, err error)` 将字符串转换为 int 型。
	if i1, err := strconv.Atoi("15"); err == nil {
		fmt.Printf("strconv.Atoi() , %d \n", i1)
	}

	//- `strconv.ParseFloat(s string, bitSize int) (f float64, err error)` 将字符串转换为 float64 型。
	if f2, err := strconv.ParseFloat("3.1415927", 1); err == nil {
		fmt.Printf("strconv.ParseFloat() , %f \n", f2)
	}

}
